#include <stdio.h>
#include <string.h>
////二分查找
//int main()
//{
//    int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
//    int key = 5;
//    int left = 0;
//    int right = sizeof(arr) / sizeof(arr[0]);
//    int flag = 0;
//    while (left <= right) {
//        int mid = (left + right) / 2;
//        if (arr[mid] == key) {
//            printf("找到了，下标是%d\n", mid);
//            flag = 1;
//            break;
//        }
//        else if (arr[mid] < key) {
//            left = mid + 1;
//        }
//        else {
//            right = mid - 1;
//        }
//    }
//
//    if (flag == 0) {
//        printf("没找到\n");
//    }
//
//    return 0;
//}

////最大公约数  辗转相除法
//int main() {
//	int m, n;
//	scanf("%d %d", &m, &n);
//	int k = 0;
//	while (k = m % n) {
//		m = n;
//		n = k;
//	}
//
//	printf("%d\n", n);
//	return 0;
//}


// 1*1=1 
// 1*2=2
// 1*3=3
//#include <stdio.h>
//int main()
//{
//	int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
//	int key = 5;
//	int left = 0;
//	int right = sizeof(arr) / sizeof(arr[0]);
//
//	while (left <= right) {
//		int mid = (left + right) / 2;
//		if (arr[mid] == key) {
//			printf("%d ", mid);
//		}
//		if (arr[mid] > key) {
//			right = mid - 1;
//		}
//		else {
//			left = mid + 1;
//		}
//	}
//
//	return 0;
//}

//bool is_prime(int n) {
//	for (int i = 2; i < n; ++i) {
//		if (n % i == 0) {
//			return false;
//		}
//	}
//
//	return true;
//}

//strlen模拟
//
//int my_strlen(char* str) {
//	int count = 0;
//	while (*str) {
//		count++;
//		++str;
//	}
//	return count;
//}
//
//int my_strlen(char* str) {
//	if (*str == '\0')
//		return 0;
//	return my_strlen_nonr(++str) + 1;
//}
//
//void reverse_string(char* str) {
//	char* left = str;
//	char* right = str + strlen(str) - 1;
//
//	while (left < right) {
//		char tmp = *left;
//		*left = *right;
//		*right = tmp;
//
//		left++;
//		right--;
//	}
//
//}

void reverse_string(char* str) {
	if (*str == '\0')
		return;

	int len = strlen(str);
	int tmp = str[0];
	str[0] = str[len - 1];
	str[len - 1] = '\0';
	if (strlen(str + 1) >= 2)
		reverse_string(str + 1);
	str[len - 1] = tmp;
}


double Pow(int n, int k) {
	//n为0
	if (k == 0) {
		return 1;
	}
	//n大于0
	else if (k > 0) {
		return n * Pow(n, k - 1);
	}
	else{
		return 1.0 / Pow(n, -k);
	}
	//n小于0
}

int DigisSum(int n) {
	if (n <= 9) {
		return n;
	}
	else {
		return DigisSum(n / 10) + n % 10;
	}
}


//int fib(int n) {
//	if (n <= 2)
//		return 1;
//	return fib(n - 1) + fib(n - 2);
//}

int fib(int n) {
	int a = 1;
	int b = 1;
	int c = 0;

	while (n >= 3) {
		c = a + b;
		a = b;
		b = c;

		--n;
	}
	return c;
}

void SwapArr(int a[], int b[], int sz) {
	//int size = sizeof(a) / sizeof(int);
	for (int i = 0; i < sz; ++i) {
		int tmp = a[i];
		a[i] = b[i];
		b[i] = tmp;
	}
}

void init(int arr[], int size) {
	
	for (int i = 0; i < size; ++i) {
		arr[i] = 0;
	}
}

void bubbleSort(int arr[], int size) {
	for (int j = 0; j < size - 1; ++j) {
		for (int i = 0; i < size - j - 1; ++i) {
			if (arr[i] > arr[i + 1]) {
				int tmp = arr[i];
				arr[i] = arr[i + 1];
				arr[i + 1] = tmp;
			}
		}
	}
}

//int main(){
//	/*char str[] = "hello";
//	reverse_string(str);
//	printf("%s\n", str);*/
//	//double p = Pow(2, -3);
//	//printf("%lf\n", p);
//	 
//	//printf("%d\n", DigisSum(1234));
//
//	//printf("%d", fib(20));
//
//	int a[] = { 1,2,3,4,5 };
//	int b[] = { 3,1,2,5,6,3,2,1,21231,45,5423 };
//	int size = sizeof(b) / sizeof(b[0]);
//
//
//	//SwapArr(a, b, size);
//
//	//for (int i = 0; i < size; ++i) {
//	//	printf("a[%d] = %d ", i, a[i]);
//	//}
//	//printf("\n");
//	//for (int i = 0; i < size; ++i) {
//	//	printf("b[%d] = %d ", i, b[i]);
//	//}
//	//init(a, size);
//
//	bubbleSort(b, size);
//	for (int i = 0; i < size; ++i) {
//		printf("%d ",b[i]);
//	}
//
//
//	return 0;
//}


#include <stdio.h>
#include <string.h>

void reverse(char str[]) {

	char* left = str;
	char* right = str + strlen(str) - 1;

	while(left < right){
		char tmp = *left;
		*left = *right;
		*right = tmp;

		++left;
		--right;
	}
}

//void reverse_string(char* str) {
//	char* left = str;
//	char* right = str + strlen(str) - 1;
//
//	while (left < right) {
//		char tmp = *left;
//		*left = *right;
//		*right = tmp;
//
//		left++;
//		right--;
//	}
//
//}

int main() {
		char str[100];

		//scanf("%c", &str);
		gets_s(str);

		reverse(str);

		printf("%s\n", str);

		//memset(str, 0, sizeof(str) / sizeof(str[0]));

	//}



	return 0;
}